package exception;

/**
 * java异常处理机制: try...catch
 * try{
 *     代码片段
 * }catch(XXXException e){
 *     当tru的代码片段出现XXXException时的补救措施
 * }
 */
public class TryCatchDemo {
    public static void main(String[] args) {
        System.out.println("程序开始了...");
        try {
            String line = null;
            System.out.println(line.length());
            String line1 = ""; //因为上一句发生了异常，所以try块中此句及以下代码都不会被执行了
            System.out.println(line.charAt(0));
            String line2 = "abc";
            System.out.println(Integer.parseInt(line2));
        }
        //catch (NullPointerException e){
            //System.out.println("出现了空指针异常并解决了"); //针对try中出现空指针异常的解决办法
       //}
        //catch (StringIndexOutOfBoundsException e){
            //System.out.println("出现了字符串下标越界异常并解决了");
        //}
        catch (NullPointerException | StringIndexOutOfBoundsException e){
            System.out.println("出现空指针或字符串下标越界异常并解决了");
        }catch (Exception  e){ //可以在最后捕获超类型异常，凡是该异常的子类型都可以被捕获并处理
            System.out.println("反正就是出了个错并解决了");
        }
        System.out.println("程序结束了...");
    }
}
